1. Technical Field of the Invention
The present invention relates to data communications and, in particular, to a method and apparatus for implementing an improved automatic repeat request (ARQ) data communications procedure.
2. Description of Related Art
There exist many applications where large volumes of digital data must be transmitted and received in a substantially error free manner. In telecommunications and satellite communications systems, in particular, it is imperative that the transmission of digital data be completed in as accurate a manner as is possible. Accurate transmission and reception of digital data has, however, been difficult because the communications channels utilized for data transmissions are plagued by error introducing factors. For example, such errors may be attributable to transient conditions in the channel (like noise and distortion), or may be due to recurrent conditions attributable to defects in the channel. The existence of transient conditions or defects results in instances where the digital data is not transmitted properly or cannot be reliably received.
Digital data is often transmitted in packets (or blocks or frames), wherein each data packet comprises a plurality of information bytes followed by a frame check sequence of bits. The errors that typically occur in the transmission and reception of digital data are of two types generally referred to as "channel errors". The first type, termed a "random" or isolated error, occurs in a single bit when there is a substitution of one value, in a two value binary bit system, for its opposite value. The second type, termed a "burst" error, occurs when a continuous sequence of adjacent bits are in error. The included frame check sequence is used to detect when and where a channel error has been introduced into the data packet.
Considerable attention has been directed toward discovering methods for addressing the instances of errors which typically accompany data transmission activities. For example, it is common to encode the transmitted data and then use the subsequent decoding process to further correct detected errors. It is also well known in the art to employ an automatic repeat request (ARQ) procedure to address instances wherein receiver processing of the included frame check sequence indicates that a channel error has occurred. When a data packet is successfully received in an error-free condition, the receiver sends an acknowledgment message to the message sender. Responsive to receipt and detection of an error including data packet, however, no acknowledgment message is sent indicating to the message sender that the data packet was not successfully received and should accordingly be retransmitted. Following the expiration of a predetermined time-out period without receipt of the acknowledgment, the data packet is automatically re-transmitted by the sender.
It is not an unusual occurrence for even the subsequent repeat transmission of a data packet in accordance with the automatic repeat request procedure to also include a channel error. In one solution to this problem, the data packet is repeatedly re-transmitted by the message sender until a successful, error-free transmission is accomplished (i.e., until the receiver sends the acknowledgment). Alternatively, the prior art discloses a system wherein the bit values of multiple, total numbering odd, re-transmissions of the same data packet including detected channel errors are stored, and a bit-wise majority vote is performed on the stored data packets to generate a new test data packet against which the frame check sequence is applied to detect any included errors. If the new test data packet passes the frame check analysis, it is output as valid and an acknowledgment message is sent by the receiver to the message sender confirming successful message transmission.